
							130-460-002-00

		PDP-11	LINKAGE EDITOR SPECIFICATION


	D. BARLOW				27 MAY 1970


























	COPYRIGHT 1970,  DIGITAL EQUIPMENT CORPORATION
			 MAYNARD, MASSACHUSETTS







		THE INFORMATION IN THIS MEMORANDUM IS
		SUBJECT TO CHANGE WITHOUT NOTICE AND
		SHOULD NOT BE CONSTRUED AS A COMMIT-
		MENT BY DIGITAL EQUIPMENT CORPORATION.

							130-460-002-

			LINKAGE EDITOR SPECIFICATION INDEX

1.0		OVERALL DESCRIPTION
1.1		USAGE
1.1.1		ABSTRACT
1.1.2		GENERAL DESCRIPTION
1.2		MARKET
1.3		DESIGN PHILOSOPHY
1.3.1		GOALS
1.3.2		CONSIDERATIONS

2.0		HARDWARE ENVIRONMENT
2.1		MINIMAL REQUIREMENTS
2.2		OPTIONS
2.3		FUTURE CONSIDERATIONS

3.0		SOFTWARE ENVIRONMENT
3.1		MONITOR REQUIREMENTS
3.2		LANGUAGE PROCESSOR REQUIREMENTS
3.2.1		SINGLE PASS LANGUAGE PROCESSOR NOTES
3.3		DDT INTERFACES
3.4		FUTURE CONSIDERATIONS

4.0		CONVENTIONS & STANDARDS
4.1		INTERNAL LABELING CONVENTIONS

5.0		FILES
5.1		MODULE'S FORMAT
		(EITHER AN OBJECT MODULE OR A LOAD MODULE )
5.2		MODULE'S CONTENTS
5.2.1		COMMUNICATIONS DIRECTORY
5.2.2		EXTERNAL SYMBOL DIRECTORY
5.2.3		TEXT BLOCK
5.2.4		RELOCATION DIRECTORY
5.2.5		INTERNAL SYMBOL DIRECTORY
5.3		LIBRARY FORMAT
5.3.1		SYSTEM LIBRARY
5.3.2		USER'S LIBRARY

6.0		INPUT/OUTPUT

7.0		OBJECT LANGUAGE

8.0		COMMAND LANGUAGE

9.0		OPERATING PROCEDURES

10.0		PHYSICAL DESCRIPTION AND ORGANIZATION
							130-460-002-



11.0		FUNCTIONAL DESCRIPTION
11.1		GENERAL DESCRIPTION
11.1.1		FEATURE DESCRIPTIONS
11.1.1.1	RELOCATION BY THE LINKAGE EDITOR
11.1.1.2	RELOCATION BY A BINARY LOADER
		(RUN-TIME RELOCATION )
11.1.1.3	LINKING
11.1.1.4	SECTIONING
11.1.1.5	LOADING THE LOAD MODULE DIRECTLY INTO MEMORY
11.1.1.6	REPROCESSING AND EDITING
11.1.2		PROCESSING
11.1.2.1	PROCESSING SYMBOLS
11.1.2.2 	CONSTRUCTING THE LOAD MODULE'S SKELETON
11.1.2.3	CONSTRUCTING THE LOAD MODULE

12.0		PROGRAMMING CONSIDERATIONS

14.0		TERMINOLOGY
14.1		ABBREVIATIONS
14.2		DEFINITIONS

							130-460-002-


INTRODUCTION

	SECTIONS 14.1 AND 14.2 CONTAIN DEFINITIONS AND ABBREVIATIONS
	FOR COMMONLY USED TERMS.

1.0	OVERALL DESCRIPTION

1.1	USAGE

1.1.1	ABSTRACT

	THIS DOCUMENT DESCRIBES THE LINKAGE EDITOR FOR THE PDP-11.
	THE PRIMARY EMPHASIS WILL BE PLACED UPON THE INITIAL PHASE
	OF IMPLEMENTATION (REFER TO SECTION 1.3.1).  THE LINKAGE 
	EDITOR IS A SERVICE ROUTINE WHICH PROVIDES THE USER WITH THE 
	FOLLOWING FACILITIES:

		PHASE I
		RELOCATING AND LINKING OBJECT MODULES (OUTPUT 
		FROM THE ASSEMBLER OR A COMPILER) WITHIN A
		STAND ALONE, HIGH SPEED PAPER TAPE ENVIRONMENT.

		PHASE II
		RELOCATING AND LINKING OBJECT MODULES WITHIN
		THE DISK MONITOR'S ENVIRONMENT.  THIS PROCESSING
		INCLUDES HANDLING OBJECT TIME LIBRARIES AND THE  
		EDITING OF LOAD MODULES (OUTPUT FROM
		THE LINKAGE EDITOR).  THIS EDITING IS ACCOMPLISHED
		THROUGH REPROCESSING LOAD MODULES AND PERMITTING 
		SUBSTITUTION, SUPPRESSION, OR INSERTION OF PROGRAM
		SECTIONS.

1.1.2	GENERAL DESCRIPTION

	WITH FEW EXCEPTIONS, THE LOCATION WHERE A PROGRAM IS
	PLACED IN MEMORY IN NO WAY INFLUENCES ITS EXECUTION.
	PROGRAMS WHICH EMPLOY THE TECHNIQUES OF POSITION
	INDEPENDENT CODE ( PIC ) INTRINSICALLY POSSESS THIS
	QUALITY.  ON THE OTHER HAND, THIS QUALITY IS NORMALLY
	ACHIEVED THROUGH PROVIDING RELOCATABLE INPUT (CODE)
	FOR PROCESSING BY THE LINKAGE EDITOR.

	FUNDAMENTALLY, THE LINKAGE EDITOR CONSTRUCTS THE LAYOUT
	OF MEMORY FOR AN ENTIRE PROGRAM.  THE PROGRAM IS THEN
	ADJUSTED SPECIFICALLY FOR THIS MEMORY LAYOUT.  THIS
	PROCESS INVOLVES RELOCATING AND LINKING TOGETHER THE
	VARIOUS COMPONENTS OF THE PROGRAM.  FOR EXAMPLE :
							130-460-002-


	FOR THE PURPOSE OF THE FOLLOWING EXAMPLES, LET 'ISYM'
	AND 'XSYM' DENOTE AN INTERNAL AND AN EXTERNAL SYMBOL
	RESPECTIVELY.

		CLR	@#ISYM	; THE FIRST WORD IS ABSOLUTE
				; THE SECOND WORD REQUIRES
				; ADDITION OF A RELOCATION
				; BIAS WHEN THE INSTRUCTION
				; IS MOVED.

		CLR	177550	; THE FIRST WORD IS ABSOLUTE
				; THE SECOND WORD REQUIRES
				; CALCULATING AN ADDRESS
				; DISPLACEMENT WHEN THE
				; INSTRUCTION IS MOVED.

		CLR	@#XSYM	; THE FIRST WORD IS ABSOLUTE
				; THE SECOND WORD REQUIRES
				; ACQUIRING THE VALUE OF THE
				; EXTERNAL SYMBOL.

		CLR	XSYM	; THE FIRST WORD IS ABSOLUTE
				; THE SECOND WORD REQUIRES
				; ACQUIRING THE ADDRESS OF
				; THE EXTERNAL SYMBOL AND
				; THEN CALCULATING AN ADDRESS
				; DISPLACEMENT WHEN THE 
				; INSTRUCTION IS MOVED.

		CLR	ISYM	; THE FIRST WORD IS ABSOLUTE
				; THE SECOND WORD IS AN
				; ADDRESS DISPLACEMENT TO
				; A KNOWN POSITION AND THEREFORE
				; IT ALSO IS ABSOLUTE.

	THE LINKAGE EDITOR REQUIRES EXAMINING ITS INPUT
	TWICE (IE., 2 PASSES).  THE FIRST PASS CONSTRUCTS AN
	INTERNAL TABLE OF EXTERNAL SYMBOLS AND THEIR ASSIGNED
	VALUES.  THE SECOND PASS RELOCATES AND LINKS TOGETHER
	THE VARIOUS COMPONENTS OF THE PROGRAM (REFER TO THE
	FUNCTIONAL DESCRIPTION FOR FURTHER DETAILS, SECTION 11.0).

	THE LINKAGE EDITOR GENERATES AN ABSOLUTE BINARY PROGRAM
	( A LOAD MODULE ) WHICH THE ABSOLUTE LOADER MAY PLACE
	DIRECTLY INTO MEMORY.  THE SECOND PHASE OF IMPLEMENTATION
	MAY INCLUDE THE FOLLOWING OPTIONS :

	A.  GENERATING THE ENTIRE LOAD MODULE DIRECTLY INTO
	    MEMORY READY FOR EXECUTION.
	B.  FORMATTING THE LOAD MODULE IN SUCH A MANNER AS TO
	    ENABLE REPROCESSING BY THE LINKAGE EDITOR.

							130-460-002-

1.2	MARKET

	THE PDP-11 LINKAGE EDITOR IS A SERVICE ROUTINE WHICH HAS BEEN
	DESIGNED FOR GENERAL PURPOSE APPLICATIONS, PRIMARILY WITHIN
	THE FIELD OF PROGRAM DEVELOPMENT.

1.3	DESIGN PHILOSOPHY


							130-460-002-


1.3.1	GOALS

	THE LINKAGE EDITOR INVOLVES TWO SUCCESSIVE PHASES OF IMPLEMEN-
	TATION.

	PHASE I

	  1.  NUMBER OF PASSES OVER THE INPUT MINIMIZED.

	  2.  RELOCATING AND LINKING PROGRAM SECTIONS SUFFICIENT FOR
	      THE DEVELOPMENT OF THE PDP-11 MONITOR.

	  3.  STAND ALONE I/O (USING IOX) OPERATING WITHIN A HIGH
	      SPEED PAPER TAPE ENVIRONMENT.

	  4.  AWARENESS OF THE REQUIREMENTS AND RESTRICTIONS PLACED
	      UPON LANGUAGE PROCESSORS GENERALLY AND THE RAMIFICATIONS
	      RELATIVE TO SINGLE PASS LANGUAGE PROCESSORS.

	PHASE II

	  1.  OPERATIONAL WITH THE MINIMAL DISK MONITOR CONFIGURATION
	      INCLUDING HIGH SPEED PAPER TAPE COMPATIBILITY.

	  2.  EXTENSION OF THE RELOCATING AND LINKING FACILITIES SUCH
	      THAT THE FORTRAN COMPILER IS FULLY SUPPORTED.

	  3.  INCLUSION OF LIBRARY FACILITIES.

	  4.  EDITING AT THE PROGRAM SECTION LEVEL.

	  5.  INTERFACING TO THE COMMON COMMAND STRING
	      INTERPRETER.

	  6.  LOADING DIRECTLY INTO MEMORY.

	  7.  RELOCATING INTERNAL SYMBOLS FOR DDT.

	  8.  REPROCESSABILITY OF LOAD MODULES.

1.3.2	CONSIDERATIONS

	THE LINKAGE EDITOR SHOULD BE MODULARIZED INTO SECTIONS
	WHICH WOULD FACILITATE PORTIONS OF THE LINKAGE EDITOR
	BEING OVERLAYED. THIS IS SOLELY AN ORGANIZATIONAL CONSIDERATION.
	IT WOULD MINIMIZE MODIFICATIONS TO THE LINKAGE EDITOR
	IN THE EVENT THAT THE OVERLAY PROCESSOR(FUTURE) IS ITSELF
	AN OVERLAY SYSTEM.




							130-460-002-


 